package com.zhongwang.mms.gen.entity;

import java.util.ArrayList;
import java.util.List;

public class MChangeDetailExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MChangeDetailExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCadIdIsNull() {
            addCriterion("cad_id is null");
            return (Criteria) this;
        }

        public Criteria andCadIdIsNotNull() {
            addCriterion("cad_id is not null");
            return (Criteria) this;
        }

        public Criteria andCadIdEqualTo(Integer value) {
            addCriterion("cad_id =", value, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdNotEqualTo(Integer value) {
            addCriterion("cad_id <>", value, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdGreaterThan(Integer value) {
            addCriterion("cad_id >", value, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("cad_id >=", value, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdLessThan(Integer value) {
            addCriterion("cad_id <", value, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdLessThanOrEqualTo(Integer value) {
            addCriterion("cad_id <=", value, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdIn(List<Integer> values) {
            addCriterion("cad_id in", values, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdNotIn(List<Integer> values) {
            addCriterion("cad_id not in", values, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdBetween(Integer value1, Integer value2) {
            addCriterion("cad_id between", value1, value2, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadIdNotBetween(Integer value1, Integer value2) {
            addCriterion("cad_id not between", value1, value2, "cadId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdIsNull() {
            addCriterion("cad_cag_id is null");
            return (Criteria) this;
        }

        public Criteria andCadCagIdIsNotNull() {
            addCriterion("cad_cag_id is not null");
            return (Criteria) this;
        }

        public Criteria andCadCagIdEqualTo(Integer value) {
            addCriterion("cad_cag_id =", value, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdNotEqualTo(Integer value) {
            addCriterion("cad_cag_id <>", value, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdGreaterThan(Integer value) {
            addCriterion("cad_cag_id >", value, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("cad_cag_id >=", value, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdLessThan(Integer value) {
            addCriterion("cad_cag_id <", value, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdLessThanOrEqualTo(Integer value) {
            addCriterion("cad_cag_id <=", value, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdIn(List<Integer> values) {
            addCriterion("cad_cag_id in", values, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdNotIn(List<Integer> values) {
            addCriterion("cad_cag_id not in", values, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdBetween(Integer value1, Integer value2) {
            addCriterion("cad_cag_id between", value1, value2, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadCagIdNotBetween(Integer value1, Integer value2) {
            addCriterion("cad_cag_id not between", value1, value2, "cadCagId");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumIsNull() {
            addCriterion("cad_surplus_num is null");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumIsNotNull() {
            addCriterion("cad_surplus_num is not null");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumEqualTo(Double value) {
            addCriterion("cad_surplus_num =", value, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumNotEqualTo(Double value) {
            addCriterion("cad_surplus_num <>", value, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumGreaterThan(Double value) {
            addCriterion("cad_surplus_num >", value, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_surplus_num >=", value, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumLessThan(Double value) {
            addCriterion("cad_surplus_num <", value, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumLessThanOrEqualTo(Double value) {
            addCriterion("cad_surplus_num <=", value, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumIn(List<Double> values) {
            addCriterion("cad_surplus_num in", values, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumNotIn(List<Double> values) {
            addCriterion("cad_surplus_num not in", values, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumBetween(Double value1, Double value2) {
            addCriterion("cad_surplus_num between", value1, value2, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadSurplusNumNotBetween(Double value1, Double value2) {
            addCriterion("cad_surplus_num not between", value1, value2, "cadSurplusNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumIsNull() {
            addCriterion("cad_take_num is null");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumIsNotNull() {
            addCriterion("cad_take_num is not null");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumEqualTo(Double value) {
            addCriterion("cad_take_num =", value, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumNotEqualTo(Double value) {
            addCriterion("cad_take_num <>", value, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumGreaterThan(Double value) {
            addCriterion("cad_take_num >", value, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_take_num >=", value, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumLessThan(Double value) {
            addCriterion("cad_take_num <", value, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumLessThanOrEqualTo(Double value) {
            addCriterion("cad_take_num <=", value, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumIn(List<Double> values) {
            addCriterion("cad_take_num in", values, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumNotIn(List<Double> values) {
            addCriterion("cad_take_num not in", values, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumBetween(Double value1, Double value2) {
            addCriterion("cad_take_num between", value1, value2, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTakeNumNotBetween(Double value1, Double value2) {
            addCriterion("cad_take_num not between", value1, value2, "cadTakeNum");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeIsNull() {
            addCriterion("cad_track_code is null");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeIsNotNull() {
            addCriterion("cad_track_code is not null");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeEqualTo(String value) {
            addCriterion("cad_track_code =", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeNotEqualTo(String value) {
            addCriterion("cad_track_code <>", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeGreaterThan(String value) {
            addCriterion("cad_track_code >", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeGreaterThanOrEqualTo(String value) {
            addCriterion("cad_track_code >=", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeLessThan(String value) {
            addCriterion("cad_track_code <", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeLessThanOrEqualTo(String value) {
            addCriterion("cad_track_code <=", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeLike(String value) {
            addCriterion("cad_track_code like", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeNotLike(String value) {
            addCriterion("cad_track_code not like", value, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeIn(List<String> values) {
            addCriterion("cad_track_code in", values, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeNotIn(List<String> values) {
            addCriterion("cad_track_code not in", values, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeBetween(String value1, String value2) {
            addCriterion("cad_track_code between", value1, value2, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadTrackCodeNotBetween(String value1, String value2) {
            addCriterion("cad_track_code not between", value1, value2, "cadTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadOutNumIsNull() {
            addCriterion("cad_out_num is null");
            return (Criteria) this;
        }

        public Criteria andCadOutNumIsNotNull() {
            addCriterion("cad_out_num is not null");
            return (Criteria) this;
        }

        public Criteria andCadOutNumEqualTo(Double value) {
            addCriterion("cad_out_num =", value, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumNotEqualTo(Double value) {
            addCriterion("cad_out_num <>", value, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumGreaterThan(Double value) {
            addCriterion("cad_out_num >", value, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_out_num >=", value, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumLessThan(Double value) {
            addCriterion("cad_out_num <", value, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumLessThanOrEqualTo(Double value) {
            addCriterion("cad_out_num <=", value, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumIn(List<Double> values) {
            addCriterion("cad_out_num in", values, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumNotIn(List<Double> values) {
            addCriterion("cad_out_num not in", values, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumBetween(Double value1, Double value2) {
            addCriterion("cad_out_num between", value1, value2, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadOutNumNotBetween(Double value1, Double value2) {
            addCriterion("cad_out_num not between", value1, value2, "cadOutNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumIsNull() {
            addCriterion("cad_ret_num is null");
            return (Criteria) this;
        }

        public Criteria andCadRetNumIsNotNull() {
            addCriterion("cad_ret_num is not null");
            return (Criteria) this;
        }

        public Criteria andCadRetNumEqualTo(Double value) {
            addCriterion("cad_ret_num =", value, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumNotEqualTo(Double value) {
            addCriterion("cad_ret_num <>", value, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumGreaterThan(Double value) {
            addCriterion("cad_ret_num >", value, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_ret_num >=", value, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumLessThan(Double value) {
            addCriterion("cad_ret_num <", value, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumLessThanOrEqualTo(Double value) {
            addCriterion("cad_ret_num <=", value, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumIn(List<Double> values) {
            addCriterion("cad_ret_num in", values, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumNotIn(List<Double> values) {
            addCriterion("cad_ret_num not in", values, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumBetween(Double value1, Double value2) {
            addCriterion("cad_ret_num between", value1, value2, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadRetNumNotBetween(Double value1, Double value2) {
            addCriterion("cad_ret_num not between", value1, value2, "cadRetNum");
            return (Criteria) this;
        }

        public Criteria andCadItyIdIsNull() {
            addCriterion("cad_ity_id is null");
            return (Criteria) this;
        }

        public Criteria andCadItyIdIsNotNull() {
            addCriterion("cad_ity_id is not null");
            return (Criteria) this;
        }

        public Criteria andCadItyIdEqualTo(Integer value) {
            addCriterion("cad_ity_id =", value, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdNotEqualTo(Integer value) {
            addCriterion("cad_ity_id <>", value, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdGreaterThan(Integer value) {
            addCriterion("cad_ity_id >", value, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("cad_ity_id >=", value, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdLessThan(Integer value) {
            addCriterion("cad_ity_id <", value, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdLessThanOrEqualTo(Integer value) {
            addCriterion("cad_ity_id <=", value, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdIn(List<Integer> values) {
            addCriterion("cad_ity_id in", values, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdNotIn(List<Integer> values) {
            addCriterion("cad_ity_id not in", values, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdBetween(Integer value1, Integer value2) {
            addCriterion("cad_ity_id between", value1, value2, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadItyIdNotBetween(Integer value1, Integer value2) {
            addCriterion("cad_ity_id not between", value1, value2, "cadItyId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdIsNull() {
            addCriterion("cad_mat_id is null");
            return (Criteria) this;
        }

        public Criteria andCadMatIdIsNotNull() {
            addCriterion("cad_mat_id is not null");
            return (Criteria) this;
        }

        public Criteria andCadMatIdEqualTo(Integer value) {
            addCriterion("cad_mat_id =", value, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdNotEqualTo(Integer value) {
            addCriterion("cad_mat_id <>", value, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdGreaterThan(Integer value) {
            addCriterion("cad_mat_id >", value, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("cad_mat_id >=", value, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdLessThan(Integer value) {
            addCriterion("cad_mat_id <", value, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdLessThanOrEqualTo(Integer value) {
            addCriterion("cad_mat_id <=", value, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdIn(List<Integer> values) {
            addCriterion("cad_mat_id in", values, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdNotIn(List<Integer> values) {
            addCriterion("cad_mat_id not in", values, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdBetween(Integer value1, Integer value2) {
            addCriterion("cad_mat_id between", value1, value2, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadMatIdNotBetween(Integer value1, Integer value2) {
            addCriterion("cad_mat_id not between", value1, value2, "cadMatId");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightIsNull() {
            addCriterion("cad_surplus_weight is null");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightIsNotNull() {
            addCriterion("cad_surplus_weight is not null");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightEqualTo(Double value) {
            addCriterion("cad_surplus_weight =", value, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightNotEqualTo(Double value) {
            addCriterion("cad_surplus_weight <>", value, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightGreaterThan(Double value) {
            addCriterion("cad_surplus_weight >", value, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_surplus_weight >=", value, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightLessThan(Double value) {
            addCriterion("cad_surplus_weight <", value, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightLessThanOrEqualTo(Double value) {
            addCriterion("cad_surplus_weight <=", value, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightIn(List<Double> values) {
            addCriterion("cad_surplus_weight in", values, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightNotIn(List<Double> values) {
            addCriterion("cad_surplus_weight not in", values, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightBetween(Double value1, Double value2) {
            addCriterion("cad_surplus_weight between", value1, value2, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadSurplusWeightNotBetween(Double value1, Double value2) {
            addCriterion("cad_surplus_weight not between", value1, value2, "cadSurplusWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightIsNull() {
            addCriterion("cad_take_weight is null");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightIsNotNull() {
            addCriterion("cad_take_weight is not null");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightEqualTo(Double value) {
            addCriterion("cad_take_weight =", value, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightNotEqualTo(Double value) {
            addCriterion("cad_take_weight <>", value, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightGreaterThan(Double value) {
            addCriterion("cad_take_weight >", value, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_take_weight >=", value, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightLessThan(Double value) {
            addCriterion("cad_take_weight <", value, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightLessThanOrEqualTo(Double value) {
            addCriterion("cad_take_weight <=", value, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightIn(List<Double> values) {
            addCriterion("cad_take_weight in", values, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightNotIn(List<Double> values) {
            addCriterion("cad_take_weight not in", values, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightBetween(Double value1, Double value2) {
            addCriterion("cad_take_weight between", value1, value2, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadTakeWeightNotBetween(Double value1, Double value2) {
            addCriterion("cad_take_weight not between", value1, value2, "cadTakeWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightIsNull() {
            addCriterion("cad_out_weight is null");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightIsNotNull() {
            addCriterion("cad_out_weight is not null");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightEqualTo(Double value) {
            addCriterion("cad_out_weight =", value, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightNotEqualTo(Double value) {
            addCriterion("cad_out_weight <>", value, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightGreaterThan(Double value) {
            addCriterion("cad_out_weight >", value, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_out_weight >=", value, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightLessThan(Double value) {
            addCriterion("cad_out_weight <", value, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightLessThanOrEqualTo(Double value) {
            addCriterion("cad_out_weight <=", value, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightIn(List<Double> values) {
            addCriterion("cad_out_weight in", values, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightNotIn(List<Double> values) {
            addCriterion("cad_out_weight not in", values, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightBetween(Double value1, Double value2) {
            addCriterion("cad_out_weight between", value1, value2, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadOutWeightNotBetween(Double value1, Double value2) {
            addCriterion("cad_out_weight not between", value1, value2, "cadOutWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightIsNull() {
            addCriterion("cad_ret_weight is null");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightIsNotNull() {
            addCriterion("cad_ret_weight is not null");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightEqualTo(Double value) {
            addCriterion("cad_ret_weight =", value, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightNotEqualTo(Double value) {
            addCriterion("cad_ret_weight <>", value, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightGreaterThan(Double value) {
            addCriterion("cad_ret_weight >", value, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_ret_weight >=", value, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightLessThan(Double value) {
            addCriterion("cad_ret_weight <", value, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightLessThanOrEqualTo(Double value) {
            addCriterion("cad_ret_weight <=", value, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightIn(List<Double> values) {
            addCriterion("cad_ret_weight in", values, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightNotIn(List<Double> values) {
            addCriterion("cad_ret_weight not in", values, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightBetween(Double value1, Double value2) {
            addCriterion("cad_ret_weight between", value1, value2, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadRetWeightNotBetween(Double value1, Double value2) {
            addCriterion("cad_ret_weight not between", value1, value2, "cadRetWeight");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescIsNull() {
            addCriterion("cad_use_mat_desc is null");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescIsNotNull() {
            addCriterion("cad_use_mat_desc is not null");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescEqualTo(String value) {
            addCriterion("cad_use_mat_desc =", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescNotEqualTo(String value) {
            addCriterion("cad_use_mat_desc <>", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescGreaterThan(String value) {
            addCriterion("cad_use_mat_desc >", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescGreaterThanOrEqualTo(String value) {
            addCriterion("cad_use_mat_desc >=", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescLessThan(String value) {
            addCriterion("cad_use_mat_desc <", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescLessThanOrEqualTo(String value) {
            addCriterion("cad_use_mat_desc <=", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescLike(String value) {
            addCriterion("cad_use_mat_desc like", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescNotLike(String value) {
            addCriterion("cad_use_mat_desc not like", value, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescIn(List<String> values) {
            addCriterion("cad_use_mat_desc in", values, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescNotIn(List<String> values) {
            addCriterion("cad_use_mat_desc not in", values, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescBetween(String value1, String value2) {
            addCriterion("cad_use_mat_desc between", value1, value2, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseMatDescNotBetween(String value1, String value2) {
            addCriterion("cad_use_mat_desc not between", value1, value2, "cadUseMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeIsNull() {
            addCriterion("cad_use_track_code is null");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeIsNotNull() {
            addCriterion("cad_use_track_code is not null");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeEqualTo(String value) {
            addCriterion("cad_use_track_code =", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeNotEqualTo(String value) {
            addCriterion("cad_use_track_code <>", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeGreaterThan(String value) {
            addCriterion("cad_use_track_code >", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeGreaterThanOrEqualTo(String value) {
            addCriterion("cad_use_track_code >=", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeLessThan(String value) {
            addCriterion("cad_use_track_code <", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeLessThanOrEqualTo(String value) {
            addCriterion("cad_use_track_code <=", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeLike(String value) {
            addCriterion("cad_use_track_code like", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeNotLike(String value) {
            addCriterion("cad_use_track_code not like", value, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeIn(List<String> values) {
            addCriterion("cad_use_track_code in", values, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeNotIn(List<String> values) {
            addCriterion("cad_use_track_code not in", values, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeBetween(String value1, String value2) {
            addCriterion("cad_use_track_code between", value1, value2, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadUseTrackCodeNotBetween(String value1, String value2) {
            addCriterion("cad_use_track_code not between", value1, value2, "cadUseTrackCode");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescIsNull() {
            addCriterion("cad_need_mat_desc is null");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescIsNotNull() {
            addCriterion("cad_need_mat_desc is not null");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescEqualTo(String value) {
            addCriterion("cad_need_mat_desc =", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescNotEqualTo(String value) {
            addCriterion("cad_need_mat_desc <>", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescGreaterThan(String value) {
            addCriterion("cad_need_mat_desc >", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescGreaterThanOrEqualTo(String value) {
            addCriterion("cad_need_mat_desc >=", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescLessThan(String value) {
            addCriterion("cad_need_mat_desc <", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescLessThanOrEqualTo(String value) {
            addCriterion("cad_need_mat_desc <=", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescLike(String value) {
            addCriterion("cad_need_mat_desc like", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescNotLike(String value) {
            addCriterion("cad_need_mat_desc not like", value, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescIn(List<String> values) {
            addCriterion("cad_need_mat_desc in", values, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescNotIn(List<String> values) {
            addCriterion("cad_need_mat_desc not in", values, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescBetween(String value1, String value2) {
            addCriterion("cad_need_mat_desc between", value1, value2, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadNeedMatDescNotBetween(String value1, String value2) {
            addCriterion("cad_need_mat_desc not between", value1, value2, "cadNeedMatDesc");
            return (Criteria) this;
        }

        public Criteria andCadPriceIsNull() {
            addCriterion("cad_price is null");
            return (Criteria) this;
        }

        public Criteria andCadPriceIsNotNull() {
            addCriterion("cad_price is not null");
            return (Criteria) this;
        }

        public Criteria andCadPriceEqualTo(Double value) {
            addCriterion("cad_price =", value, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceNotEqualTo(Double value) {
            addCriterion("cad_price <>", value, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceGreaterThan(Double value) {
            addCriterion("cad_price >", value, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("cad_price >=", value, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceLessThan(Double value) {
            addCriterion("cad_price <", value, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceLessThanOrEqualTo(Double value) {
            addCriterion("cad_price <=", value, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceIn(List<Double> values) {
            addCriterion("cad_price in", values, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceNotIn(List<Double> values) {
            addCriterion("cad_price not in", values, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceBetween(Double value1, Double value2) {
            addCriterion("cad_price between", value1, value2, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadPriceNotBetween(Double value1, Double value2) {
            addCriterion("cad_price not between", value1, value2, "cadPrice");
            return (Criteria) this;
        }

        public Criteria andCadIfRetIsNull() {
            addCriterion("cad_if_ret is null");
            return (Criteria) this;
        }

        public Criteria andCadIfRetIsNotNull() {
            addCriterion("cad_if_ret is not null");
            return (Criteria) this;
        }

        public Criteria andCadIfRetEqualTo(Integer value) {
            addCriterion("cad_if_ret =", value, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetNotEqualTo(Integer value) {
            addCriterion("cad_if_ret <>", value, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetGreaterThan(Integer value) {
            addCriterion("cad_if_ret >", value, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetGreaterThanOrEqualTo(Integer value) {
            addCriterion("cad_if_ret >=", value, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetLessThan(Integer value) {
            addCriterion("cad_if_ret <", value, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetLessThanOrEqualTo(Integer value) {
            addCriterion("cad_if_ret <=", value, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetIn(List<Integer> values) {
            addCriterion("cad_if_ret in", values, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetNotIn(List<Integer> values) {
            addCriterion("cad_if_ret not in", values, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetBetween(Integer value1, Integer value2) {
            addCriterion("cad_if_ret between", value1, value2, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadIfRetNotBetween(Integer value1, Integer value2) {
            addCriterion("cad_if_ret not between", value1, value2, "cadIfRet");
            return (Criteria) this;
        }

        public Criteria andCadStatusIsNull() {
            addCriterion("cad_status is null");
            return (Criteria) this;
        }

        public Criteria andCadStatusIsNotNull() {
            addCriterion("cad_status is not null");
            return (Criteria) this;
        }

        public Criteria andCadStatusEqualTo(Integer value) {
            addCriterion("cad_status =", value, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusNotEqualTo(Integer value) {
            addCriterion("cad_status <>", value, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusGreaterThan(Integer value) {
            addCriterion("cad_status >", value, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("cad_status >=", value, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusLessThan(Integer value) {
            addCriterion("cad_status <", value, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusLessThanOrEqualTo(Integer value) {
            addCriterion("cad_status <=", value, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusIn(List<Integer> values) {
            addCriterion("cad_status in", values, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusNotIn(List<Integer> values) {
            addCriterion("cad_status not in", values, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusBetween(Integer value1, Integer value2) {
            addCriterion("cad_status between", value1, value2, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("cad_status not between", value1, value2, "cadStatus");
            return (Criteria) this;
        }

        public Criteria andCadDeptIsNull() {
            addCriterion("cad_dept is null");
            return (Criteria) this;
        }

        public Criteria andCadDeptIsNotNull() {
            addCriterion("cad_dept is not null");
            return (Criteria) this;
        }

        public Criteria andCadDeptEqualTo(String value) {
            addCriterion("cad_dept =", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptNotEqualTo(String value) {
            addCriterion("cad_dept <>", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptGreaterThan(String value) {
            addCriterion("cad_dept >", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptGreaterThanOrEqualTo(String value) {
            addCriterion("cad_dept >=", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptLessThan(String value) {
            addCriterion("cad_dept <", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptLessThanOrEqualTo(String value) {
            addCriterion("cad_dept <=", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptLike(String value) {
            addCriterion("cad_dept like", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptNotLike(String value) {
            addCriterion("cad_dept not like", value, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptIn(List<String> values) {
            addCriterion("cad_dept in", values, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptNotIn(List<String> values) {
            addCriterion("cad_dept not in", values, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptBetween(String value1, String value2) {
            addCriterion("cad_dept between", value1, value2, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadDeptNotBetween(String value1, String value2) {
            addCriterion("cad_dept not between", value1, value2, "cadDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptIsNull() {
            addCriterion("cad_need_dept is null");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptIsNotNull() {
            addCriterion("cad_need_dept is not null");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptEqualTo(String value) {
            addCriterion("cad_need_dept =", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptNotEqualTo(String value) {
            addCriterion("cad_need_dept <>", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptGreaterThan(String value) {
            addCriterion("cad_need_dept >", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptGreaterThanOrEqualTo(String value) {
            addCriterion("cad_need_dept >=", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptLessThan(String value) {
            addCriterion("cad_need_dept <", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptLessThanOrEqualTo(String value) {
            addCriterion("cad_need_dept <=", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptLike(String value) {
            addCriterion("cad_need_dept like", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptNotLike(String value) {
            addCriterion("cad_need_dept not like", value, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptIn(List<String> values) {
            addCriterion("cad_need_dept in", values, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptNotIn(List<String> values) {
            addCriterion("cad_need_dept not in", values, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptBetween(String value1, String value2) {
            addCriterion("cad_need_dept between", value1, value2, "cadNeedDept");
            return (Criteria) this;
        }

        public Criteria andCadNeedDeptNotBetween(String value1, String value2) {
            addCriterion("cad_need_dept not between", value1, value2, "cadNeedDept");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}